package mus;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;

public class Mus {
	private Pareja pareja1;
	private Pareja pareja2;
	private Baraja baraja;
	private Jugador jugadorActual;
	private Jugador mano;
	private Iterator<Jugador> itj;
	private ArrayList<Jugador> jugadores;

	public Mus() {
		BarajaFabrica barajaFabrica = new BarajaFabrica();
		baraja = barajaFabrica.createBaraja();
	}

	public void jugarPares(){
		//TODO Se obtiene el orden de los jugadores a partir de la mano.
		boolean fin =false;
		int cantidad = 0;
		itj = jugadores.iterator();
		jugadorActual = siguienteJugador();
		eliminarJugadoresSinPares(jugadores);
		while(!fin()){
			if(!jugadorActual.haApostado()){
				if(!jugadorActual.pasa()){
					jugadorActual.apostar(cantidad);
				}
			}else{
				if(!jugadorActual.pasa()){
					if(!jugadorActual.verApuesta()){
						jugadorActual.subirApuesta(cantidad);
					}else{
						jugadorActual.verApuesta();
						fin=true;
					}
				}else{
					jugadorActual.pasa();
					jugadorActual= siguienteJugador();
				}
			}
			
		}
		
		puntuar();	
	}

	private void puntuar() {
		// TODO Auto-generated method stub
		if(!todosPasan(jugadores)){
			if(seHaVistoLaApuesta()){
				asignarApuestaALaMejorJugada();
			}
			if(parejaContrariaPasa()){
				Pareja parejaQueNoPasa = null;
				asignarApuesta(parejaQueNoPasa);
			}
		}
	}

	private void asignarApuesta(Pareja pareja12) {
		// TODO Auto-generated method stub
		
	}

	private boolean parejaContrariaPasa() {
		// TODO Auto-generated method stub
		return false;
	}

	private void asignarApuestaALaMejorJugada() {
		// TODO Auto-generated method stub
		
	}

	private boolean hayApuesta() {
		// TODO Auto-generated method stub
		return false;
	}

	private boolean seHaVistoLaApuesta() {
		// TODO Auto-generated method stub
		return false;
	}

	private boolean todosPasan(ArrayList<Jugador> jugadores2) {
		// TODO Auto-generated method stub
		return false;
	}
	
	/**
	 * este metodo compruba los jugadores que no tienes pares y los elimina del
	 * array
	 * 
	 * @param jugadores2
	 */
	private void eliminarJugadoresSinPares(ArrayList<Jugador> jugadores2) {
		// TODO Auto-generated method stub

	}

	private boolean fin() {
		// TODO Auto-generated method stub
		return false;
	}

	private Jugador siguienteJugador() {
		// TODO Auto-generated method stub
		return null;
	}
}
